Computer aided manufacturing (CAM) applications commonly provide the ability to generate tool paths in order to manufacture parts. Generally a user of such a CAM application cannot just send an unmodified tool path to a machine and start cutting because there are many different types of machines. Each type of machine has unique hardware capabilities and requirements; for instance, it can have a vertical or horizontal spindle, it can cut while moving several axes simultaneously, etc.
Further, each machine is controlled by a computer (i.e., a controller). This is referred to as a numerically controlled (NC) machine. The controller accepts a tool path file and directs tool motion and other machine activity (e.g., turning the coolant or air on and off). Just as each type of machine has unique hardware characteristics, controllers also differ in software characteristics. For instance, most controllers require that the instruction for turning the coolant on, for example, be given in a particular code. Some controllers also restrict the number of codes that are allowed in one line of output. The above mentioned information is not in the initial tool path definition.
Therefore, the tool path must be modified to suit the unique parameters of each different machine/controller combination in a data transformation and formatting process called postprocessing. Post processors are the software elements that are used during postprocessing to generate the output (NC codes) sequenced and formatted properly to be accepted and understood by the machine/controller of interest. A CAD application, like NX® offered for commercial sale by Siemens Product Lifecycle Management Software, Inc., can use the TCL scripting language as the medium to deliver one of the post processor elements called an event handler file that is written in the form of readable source code in text-readable format. TCL enables the postprocessor programmer to encapsulate logical manipulation and computation with the raw tool path data in order to produce desired numerical control codes for the controller and related machine. The textual form of delivery for software applications leaves the source code of the script file viewable with any text reader, and conversely any intellectual property contained within the scripts is easily viewable. Providers of the post processors also suffer from not being able to license and restrict the use of individual post processor to only the authorized users.
To solve these problems, commercial software applications will sometimes compile the deliverable source code or supporting data files into binary images. Although this approach provides good protection, it requires the deliverable files be prepared individually for each computer platform because compiling object code from source code is typically platform dependent.
What is needed is a system and method for text-based source code encryption that is platform independent to protect postprocessors and/or supporting data files while imposing license control.